#ifndef PARSER_NEW_H_
#define PARSER_NEW_H_

#include "../constants.h"
#include "../cmd/cmd.h"
#include "../string/string.h"
#include "../variable/variable.h"

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

/* Realiza o parser da linha de comando da entrada */
int parser_parse(string *input, command *cmd);
/* Divide a entrada em tokens args pelo separador separator*/
int parser_tokenize(string *input, linked_list *args, char separator);
/* Procura por variáveis e as substitui */
void parser_search_variables(linked_list *args);
/* Processa os tokens para gerar a estrutura de linha de comando */
int parser_process_tokens(linked_list *args, command *cmd);
/* Processa um iterador até encontrar um conector */
int parser_process_iterator(ll_iterator *i, command *cmd, int in);


#endif /* PARSER_NEW_H_ */
